import request from '@/utils/request.js';

/**
 * 获取王者荣耀排位账号分页列表
 * @param {Object} params - 分页参数
 * @param {Number} [params.areaType] - 账号区域类型：1微信区 2QQ区
 * @param {Number} [params.rank] - 段位：1青铜 2白银 3黄金 4铂金 5钻石 6星耀 7王者
 * @param {Number} [params.auditStatus] - 审核状态：0待审核 1通过 2拒绝
 * @param {Number} params.pageNo - 页码，从1开始
 * @param {Number} params.pageSize - 每页记录数
 * @returns {Promise} 返回Promise，成功时包含分页结果
 */
export function getGameKingAccountPage(params) {
  return request.get('/feed/app/game/king-account/page', params);
}

/**
 * 获取王者荣耀排位账号详情
 * @param {Number} id - 账号ID
 * @returns {Promise} 返回Promise，成功时包含账号详情
 */
export function getGameKingAccount(id) {
  return request.get(`/feed/app/game/king-account/get?id=${id}`);
}

/**
 * 创建王者荣耀排位账号
 * @param {Object} data - 账号信息
 * @param {String} data.gameId - 游戏ID
 * @param {Number} data.areaType - 账号区域类型：1微信区 2QQ区
 * @param {Number} data.rankLevel - 段位：1青铜 2白银 3黄金 4铂金 5钻石 6星耀 7王者
 * @param {String} data.contact - 联系方式
 * @param {String} data.screenshot - 游戏主页截图
 * @param {String} [data.remark] - 备注
 * @returns {Promise} 返回Promise，成功时包含创建的账号ID
 */
export function createGameKingAccount(data) {
  return request.post('/feed/app/game/king-account/create', data);
}

/**
 * 创建王者荣耀组队
 * @param {Object} data - 组队信息
 * @param {Number} data.accountId - 王者账号ID
 * @param {Number} data.teamType - 队伍类型：1娱乐局 2排位赛 3找对象
 * @param {String} data.title - 队伍标题
 * @param {String} data.description - 队伍简介
 * @param {Number} data.position - 位置：1上路 2中路 3下路 4辅助 5打野
 * @returns {Promise} 返回Promise，成功时包含创建的组队ID
 */
export function createGameKingTeam(data) {
  return request.post('/feed/app/game/king-team/create', data);
}

/**
 * 获取王者荣耀组队分页列表
 * @param {Object} params - 分页参数
 * @param {Number} [params.teamType] - 队伍类型：1娱乐局 2排位赛 3找对象
 * @param {Number} [params.status] - 队伍状态：0组队中 1已解散 2已完成
 * @param {Number} params.pageNo - 页码，从1开始
 * @param {Number} params.pageSize - 每页记录数
 * @returns {Promise} 返回Promise，成功时包含分页结果
 */
export function getGameKingTeamPage(params) {
  return request.get('/feed/app/game/king-team/page', params);
}

/**
 * 获取我的王者荣耀组队分页列表
 * @param {Object} params - 分页参数
 * @param {Number} [params.teamType] - 队伍类型：1娱乐局 2排位赛 3找对象
 * @param {Number} [params.status] - 队伍状态：0组队中 1已解散 2已完成
 * @param {Number} params.pageNo - 页码，从1开始
 * @param {Number} params.pageSize - 每页记录数
 * @returns {Promise} 返回Promise，成功时包含分页结果
 */
export function getMyGameKingTeamPage(params) {
  return request.get('/feed/app/game/king-team/my-page', params);
}

/**
 * 获取我加入的王者荣耀组队分页列表
 * @param {Object} params - 分页参数
 * @param {Number} [params.teamType] - 队伍类型：1娱乐局 2排位赛 3找对象
 * @param {Number} params.pageNo - 页码，从1开始
 * @param {Number} params.pageSize - 每页记录数
 * @returns {Promise} 返回Promise，成功时包含分页结果
 */
export function getMyJoinTeamPage(params) {
  return request.get('/feed/app/game/king-team-member/my-join-team-page', params);
}

/**
 * 获取王者荣耀组队详情
 * @param {Number} id - 组队ID
 * @returns {Promise} 返回Promise，成功时包含组队详情
 */
export function getGameKingTeam(id) {
  return request.get(`/feed/app/game/king-team/get?id=${id}`);
}

/**
 * 更新王者荣耀组队状态
 * @param {Number} id - 组队ID
 * @param {Number} status - 状态：1已解散 2已完成
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function updateGameKingTeamStatus(id, status) {
  return request.put(`/feed/app/game/king-team/update-status?id=${id}&status=${status}`);
}

/**
 * 获取当前用户的王者荣耀账号列表
 * @returns {Promise} 返回Promise，成功时包含用户的账号列表
 */
export function getUserGameAccounts() {
  return request.get('/feed/app/game/king-account/list-by-user');
}

/**
 * 切换默认账号
 * @param {Number} id - 要设置为默认的账号ID
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function switchDefaultAccount(id) {
  return request.post(`/feed/app/game/king-account/switch-default?id=${id}`);
}

/**
 * 更新王者荣耀账号信息
 * @param {Object} data - 更新数据
 * @param {Number} data.id - 账号ID
 * @param {Number} data.rankLevel - 段位等级
 * @param {String} data.contact - 联系方式
 * @param {String} data.remark - 备注
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function updateGameKingAccount(data) {
  return request.put('/feed/app/game/king-account/update', data);
}

/**
 * 重新校验王者荣耀账号昵称
 * @param {Number} id - 账号ID
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function retryVerifyGameAccount(id) {
  return request.post(`/feed/app/game/king-account/retry-verify?id=${id}`);
}

/**
 * 加入王者荣耀组队
 * @param {Object} data - 加入队伍的参数
 * @param {Number} data.teamId - 队伍ID
 * @param {Number} data.accountId - 账号ID
 * @param {String} data.contact - 联系方式
 * @param {Number} data.position - 位置：1上路 2中路 3下路 4辅助 5打野
 * @returns {Promise} 返回Promise，成功时包含创建的成员ID
 */
export function joinGameKingTeam(data) {
  return request.post('/feed/app/game/king-team-member/create', data);
}

/**
 * 退出王者荣耀组队
 * @param {Number} id - 成员ID
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function leaveGameKingTeam(id) {
  return request.delete(`/feed/app/game/king-team-member/cancel?id=${id}`);
}

/**
 * 上传排位截图
 * @param {Object} data - 上传参数
 * @param {Number} data.teamId - 组队ID
 * @param {String} data.rankScreenshot - 排位截图URL
 * @returns {Promise} 返回Promise，成功时返回true
 */
export function uploadRankScreenshot(data) {
  return request.post('/feed/app/game/king-team/upload-rank-screenshot', data);
}

// ========== 黑名单相关接口 ==========

/**
 * 添加黑名单
 * @param {Object} data - 拉黑信息
 * @param {Number} data.blacklistedUserId - 被拉黑者用户ID
 * @param {String} [data.reason] - 拉黑原因
 * @returns {Promise} 返回Promise，成功时包含操作结果
 */
export function addBlacklist(data) {
  return request.post('/feed/app/game/king-blacklist/add', data);
}

/**
 * 移除黑名单
 * @param {Object} data - 移除信息
 * @param {Number} data.blacklistedUserId - 被拉黑者用户ID
 * @returns {Promise} 返回Promise，成功时包含操作结果
 */
export function removeBlacklist(data) {
  return request.delete('/feed/app/game/king-blacklist/remove', data);
}

/**
 * 检查是否在黑名单中
 * @param {Number} blacklistedUserId - 被拉黑者用户ID
 * @returns {Promise} 返回Promise，成功时包含检查结果
 */
export function checkBlacklist(blacklistedUserId) {
  return request.get(`/feed/app/game/king-blacklist/check?blacklistedUserId=${blacklistedUserId}`);
}